home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / utils1 / dosmenu6.zip / DOSMENU.DOC < prev    next >
Text File  |  1994-06-13  |  65KB  |  1,772 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                                    DOSmenu
  20.                                    ═══════
  21.  
  22.                       A Powerful, Easy Management System
  23.            For Novell Netware, Other Networks, And Stand-Alone PCs
  24.  
  25.  
  26.  
  27.  
  28.                             (C)Copyright 1993-1994
  29.  
  30.                                  Skip Bremer
  31.  
  32.                                 Austin, Texas
  33.  
  34.                              All rights reserved
  35.  
  36.  
  37.  
  38.  
  39.  
  40.                                  Version 6.4c
  41.  
  42.                                   June 1994
  43.                               TABLE OF CONTENTS
  44. ══════════════════════════════════════════════════════════════════════════════
  45.  
  46.      Topic                                                        Page
  47.      Introduction . . . . . . . . . . . . . . . . . . . . . . . .   3
  48.  
  49.      Miscellaneous  . . . . . . . . . . . . . . . . . . . . . . .   4
  50.           Requirements
  51.           Recommendations
  52.           Maximum Limits
  53.           Startup Options
  54.           Required Files
  55.           Optional Files
  56.           Update Procedures For Registered Users
  57.  
  58.      Quick Start Instructions . . . . . . . . . . . . . . . . . .   7
  59.  
  60.      Startup Batch File . . . . . . . . . . . . . . . . . . . . .   8
  61.  
  62.      Menu Commands  . . . . . . . . . . . . . . . . . . . . . . .   9
  63.  
  64.      System Setup . . . . . . . . . . . . . . . . . . . . . . . .  10
  65.  
  66.      Menu Definition  . . . . . . . . . . . . . . . . . . . . . .  15
  67.           Server-Based Convention
  68.           Rights-Based Convention
  69.           Notes
  70.           Testing Your Menu
  71.  
  72.      Menu Rules . . . . . . . . . . . . . . . . . . . . . . . . .  21
  73.           Rules
  74.           Notes
  75.           Loading Additional Menus (/LOAD, /MENU)
  76.           Chaining Startup Batch Files (/NEW)
  77.           Logging In To Other Servers (/LOGIN)
  78.  
  79.      Sub-Menus . . . . . . . . . . . . . . . . . . . . . . . . . . 25
  80.  
  81.      Compiling Menu Files  . . . . . . . . . . . . . . . . . . . . 26
  82.  
  83.      Translating Menu Files  . . . . . . . . . . . . . . . . . . . 27
  84.  
  85.      Temporary Batch Files . . . . . . . . . . . . . . . . . . . . 28
  86.  
  87.      DOS Environment Variables . . . . . . . . . . . . . . . . . . 29
  88.  
  89.      Noticing  . . . . . . . . . . . . . . . . . . . . . . . . . . 30
  90.  
  91.      Personal Menus  . . . . . . . . . . . . . . . . . . . . . . . 31
  92.  
  93.      Software Metering Service . . . . . . . . . . . . . . . . . . 32
  94.  
  95.      DMutil Maintenance Utility  . . . . . . . . . . . . . . . . . 33
  96.           Command Parameters
  97.           The Menu File Editor
  98.  
  99.      DMquery Batch Input Utility . . . . . . . . . . . . . . . . . 34
  100.  
  101.      DMmeter Metering Utility  . . . . . . . . . . . . . . . . . . 35
  102.  
  103.      WOmeter Metering Utility  . . . . . . . . . . . . . . . . . . 36
  104.  
  105.      Windows Office Menu . . . . . . . . . . . . . . . . . . . . . 37
  106.  
  107.      Additional DOSmenu Documentation Files  . . . . . . . . . . . 38
  108.                                  INTRODUCTION
  109. ══════════════════════════════════════════════════════════════════════════════
  110.  
  111. DOSmenu was designed as a simple yet powerful menu system for both network and
  112. stand-alone environments.  Please use DOSmenu for evaluation purposes, but if
  113. you continue to use it, you should register according to the documentation in
  114. DMLEGAL.DOC.
  115.  
  116. Here is a quick overview of DOSmenu:
  117.  
  118. o    Small executable size.
  119.  
  120. o    No memory overhead.
  121.  
  122. o    Unlimited menus.
  123.  
  124. o    Run any program, including TSRs.
  125.  
  126. o    Many rights options to determine whether a menu item is usable by a user.
  127.  
  128. o    Automatically knows NetWare.  Works with other networks and stand-alone
  129.      environments.
  130.  
  131. o    Change menu environment on-the-fly while users are active.
  132.  
  133. o    Optionally compile menu files for ultimate menu security.
  134.  
  135. o    One utility (DMutil) handles all menu setup tasks.
  136.  
  137. o    Translate NetWare menu files.
  138.  
  139. o    Complete user logging and reporting capabilities.
  140.  
  141. o    Complete Software Metering Service and reporting capabilities.
  142.  
  143. o    Full mouse support, activated screen saving, a menu utility set and
  144.      printed documentation with the registered version.
  145.                                 MISCELLANEOUS
  146. ══════════════════════════════════════════════════════════════════════════════
  147.  
  148. REQUIREMENTS
  149. ════════════
  150.  
  151. DOSmenu's only known requirement is that it must run under DOS 3.1 or higher.
  152. It loads Windows fine and runs fine from a Windows DOS session.
  153.  
  154.  
  155. RECOMMENDATIONS
  156. ═══════════════
  157.  
  158. We strongly recommend placing the command
  159.  
  160.      SHELL=C:\COMMAND.COM /E:512 /P {or more}
  161.  
  162. in all CONFIG.SYS files using this menu system.  The environment space is
  163. needed as DOSmenu passes many things through the DOS environment (thereby
  164. utilizing NO overhead).
  165.  
  166.  
  167. MAXIMUM LIMITS
  168. ══════════════
  169.  
  170. Menu files: unlimited
  171. Sub-menus per menu file: 15
  172. Shown items per sub-menu: 20
  173. DOS commands per menu item: 15
  174. Rights per menu item: 10
  175. Right items per right group: 10
  176. Length of menu items: 50
  177. Length of menu rights: 128
  178. Length of menu commands: 60
  179. Length of help lines: 60
  180. Length of screen title: 42
  181. Length of questions: 72
  182. Active notices per user: 15
  183. Number of lines per notice: 10
  184. Length of notice lines: 70
  185. Metered applications: 100
  186.  
  187.  
  188. STARTUP OPTIONS
  189. ═══════════════
  190.  
  191. DOSmenu is started with the DOSMENU command from within a batch file.
  192. However, you may specify a user ID, a server name and/or a node address on the
  193. DOSmenu command line through parameters issued to the batch file.  This is not
  194. normally necessary because DOSmenu picks the user ID and server name up
  195. automatically on NetWare networks and you may define DOS variables that are
  196. identified from within the DOSmenu INI file to determine the active user and
  197. active server on stand-alone environments.
  198.  
  199.  
  200. REQUIRED FILES
  201. ══════════════
  202.  
  203. The following files are necessary to run DOSmenu:
  204.  
  205. DOSMENU.EXE    The DOSmenu program.
  206.  
  207. DMMISC.EXE     Required for registered versions (it is the register-key file).
  208.                It must reside in DOSMENU.EXE's home directory.
  209.  
  210. DMUTIL.EXE     The DOSmenu utility program.  It handles all menu system setup
  211.                chores.
  212.  
  213. DOSMENU.INI    The default DOSmenu INI file initially made and edited with
  214.                DMutil.  It configures your menu system environment.
  215.  
  216. DOSMENU.MNU    The default DOSmenu menu file initially made and edited with
  217.                DMutil.  This file is the default menu.
  218.  
  219. MENU.BAT       The startup batch file initially made and edited with DMutil.
  220.  
  221.  
  222. OPTIONAL FILES
  223. ══════════════
  224.  
  225. DOSMENU.PER    Optional personal menu kept in users' private directory.
  226.  
  227. DOSMENU.NTE    The default DOSmenu note file initially made and edited with
  228.                DMutil.  This file holds user notices.
  229.  
  230. DOSMENU.LOG    If logging is enabled, this file is appended every time a user
  231.                performs a menu action.
  232.  
  233. DOSMENU.MTR    If metering is enabled, this is the central file where the
  234.                metering information is kept.
  235.  
  236. DMQUERY.EXE    An external utility that gets and uses batch file input.
  237.  
  238. DMMETER.EXE    An external software metering utility that can compliment the
  239.                metering services offered from within the DOSmenu.
  240.  
  241. WOMETER.EXE    A Windows-based software metering utility that can be used to
  242.                view, reset, and periodically erase the meter file.  This
  243.                program performs the same functions as DMmeter from within
  244.                Windows as part of the Windows Office Menu System (see below).
  245. THREED.VBX     Required to run WOMETER.EXE.  Place in \WINDOWS  directory.
  246. VBRUN300.DLL   Required to run WOMETER.EXE.  Place in \WINDOWS directory.  (If
  247.                necessary, it can be downloaded from most online services, and
  248.                it is shipped with the registered version.)
  249.  
  250. DMPAUSE.EXE    Like DOS 'pause' command but with ^C and ^Break key trapping.
  251.  
  252. NOBRK.EXE      A very useful utility that can help to guarantee security
  253.                within your menu system with an approach different than the
  254.                inherent DOSmenu {r=nobreak} rights option.
  255.  
  256. DMSAVER.EXE    An external screen saver (you may use your own as well).
  257.                (This feature is only called from DOSmenu in the registered
  258.                version.)
  259.  
  260. DMLOGIN.EXE    A great login/logout utility that enhances network order and
  261.                security.  (See DMLOGIN.DOC for specifics).
  262.  
  263. Many additional utility programs (see DMBONUS.DOC) are also shipped with the
  264. registered version.
  265.  
  266.  
  267. UPDATE PROCEDURES FOR REGISTERED USERS
  268. ══════════════════════════════════════
  269.  
  270. There are two ways to upgrade your registered version of DOSmenu starting with
  271. version 6.4.
  272.  
  273. Download from CIS (or other online services)
  274. ────────────────────────────────────────────
  275. You may download the latest shareware self-extracting ZIP file (DOSMNU.EXE)
  276. anytime, run it, and then copy its files over your existing registered files.
  277. It will then become registered automatically.  (Make sure you do not delete
  278. the existing DMMISC.EXE file, which is your register-key file.)
  279.  
  280. By mail from the author
  281. ───────────────────────
  282. You may write to the author and request the latest registered update.  Please
  283. include $15 US for shipping and handling.
  284.                            QUICK START INSTRUCTIONS
  285. ══════════════════════════════════════════════════════════════════════════════
  286.  
  287. To quickly get the menu system up and running, do the following (check the
  288. documentation later for specifics):
  289.  
  290. o    Copy DOSmenu files to a permanent home directory (we strongly recommend
  291.      the server's \LOGIN directory if operating on a network!).
  292.  
  293. o    Change to that home directory.
  294.  
  295. *    For the shareware version only, run DOSMNU.EXE to extract the files.
  296.  
  297. o    Run 'DMUTIL /M' to make the default menu files.
  298.  
  299. o    Run 'DMUTIL' to setup the DOSmenu system files.
  300.  
  301.           DOSMENU.INI - init menu environment file
  302.           DOSMENU.MNU - default menu file
  303.           DOSMENU.NTE - note file for user/group notices
  304.  
  305. o    Run 'DMUTIL /C DOSMENU.INI' to compile the init file -optional.
  306.  
  307. o    Run 'DMUTIL /C DOSMENU.MNU' to compile the menu file -optional.
  308.  
  309. o    Run 'MENU' to start the menu system.
  310.  
  311. o    Press F1 to see the in-menu options.
  312.  
  313. o    Press F9 to further tailor your menu system.
  314.  
  315. Enjoy!
  316.                               STARTUP BATCH FILE
  317. ══════════════════════════════════════════════════════════════════════════════
  318.  
  319. As part of the initial file installation performed by DMutil, the file
  320. MENU.BAT will be made in DOSmenu's home directory.  All DOSmenu files except
  321. for MENU.BAT and the MNU files _must_ stay in DOSmenu's home directory.  All
  322. users must be able to 'read' this directory.  If you move MENU.BAT, be sure to
  323. change it accordingly.  You may also move MNU files as long as you call them
  324. with their path.  If no path is given, then DOSmenu looks for them in its home
  325. directory.
  326.  
  327. Here is a commented MENU.BAT:
  328.  
  329. @echo off                           ;Cosmetics only
  330. ::uncomment variation of next line on networks when you don't want the menu to
  331. ::  appear if user is not logged in (especially if MENU.BAT is in LOGIN dir)
  332. REM if not exist f:\public\*.* goto END
  333. ::replace %5 on next line only with menu name if not starting with DOSMENU.MNU
  334. f:                                  ;helps achive a 'cleaner' logout
  335. cd \login                           ;"
  336. f:\login\dosmenu /batch %1 %2 %3 %4 %5 ;Point to/run DOSmenu {with parameters
  337.                                     ;  if desired (not required on NetWare)}
  338. ::quitting the menu system?         ;255 passed with F10 or 'goto END' passed
  339. if errorlevel 255 goto END          ;If so, then leave loop and batch file
  340. ::running a new startup batch file? ;254 passed with /NEW or /LOGIN commands
  341. if errorlevel 254 goto NEW          ;If so, then leave loop and batch file
  342. %_dmcmd%                            ;The DOS command or temp batch file name
  343. ::do it again                       ;Keep running the batch file (and the menu
  344. f:\login\menu %1 %2 %3 %4 %5 %_dmmnu% /rerun ;  system) until system stopped
  345. goto END
  346. :NEW
  347. %_dmcmd%                            ;The new startup batch file name
  348. :END                                ;Place to go to when quitting
  349.  
  350. Be cautious about changing this batch file!
  351.  
  352. Parameters are normally only needed if you are not running on NetWare and have
  353. not set the names of the user ID and server name variables to be used by
  354. DOSmenu in the menu file and you are not running in a stand-alone environment.
  355.  
  356. The DOS variable _dmcmd is loaded as either the actual menu command or as a
  357. temporary batch file path and name made by DOSmenu when it combines the
  358. commands for a menu item.
  359.  
  360. The _dmmnu DOS variable holds the name of the current 'main menu'.
  361.  
  362. Quitting will move to the end of the batch file, thereby stopping the system.
  363. You can place a quit command on your user's menu to do the same thing by
  364. defining a single DOS command for that menu item as 'goto END'.
  365.                                 MENU COMMANDS
  366. ══════════════════════════════════════════════════════════════════════════════
  367.  
  368. F1   HELP      Brings up context sensitive help.
  369.  
  370. F2   DOS       Performs any DOS command from within the confines of the menu
  371.                system.  Can be password protected.
  372.  
  373. F3   VIEW DOS  Views the last DOS screen.  If quit timing is enabled and an F2
  374.                password is enabled, this option is password protected.
  375.  
  376. F4   VIEW NOTE Views any notices that were directed to a user.
  377.  
  378. F5   PERSONAL  Load user's personal menu file.  Can be disabled.
  379.  
  380. F6   EDIT PER  Edit personal menu file.  Can be disabled.
  381.  
  382. F9   ADMIN     Edits all of the menu system files at one time, interactively,
  383.                while running the menu system.  Can be password protected.
  384.  
  385. F10  QUIT      Quits DOSmenu.  Can be password protected.
  386.  
  387. ESC  PREVIOUS  Backs up to the previous menu or cancels a question.
  388.                                  SYSTEM SETUP
  389. ══════════════════════════════════════════════════════════════════════════════
  390.  
  391. DOSmenu has two setup phases, the initial default file creation and then
  392. configuration.
  393.  
  394.  
  395. DEFAULT MENU FILES CREATION
  396. ═══════════════════════════
  397.  
  398. After moving all DOSmenu files to a permanent home directory, and then moving
  399. to that directory, you must run DMUTIL /M to make the initial menu file set
  400. consisting of DOSMENU.INI (the init file), DOSMENU.MNU (the menu file shell),
  401. DOSMENU.NTE (the note file) and MENU.BAT (the startup batch).  DOSmenu must
  402. run from a batch file for the reasons discussed below.  We will use the name
  403. MENU.BAT throughout this documentation, however it may be renamed.  If
  404. renamed, be sure to change the file accordingly.
  405.  
  406.  
  407. SYSTEM CONFIGURATION
  408. ════════════════════
  409.  
  410. After DOSMENU.INI is created, you need to edit it with DMutil in order to set
  411. the environment for your specific system.  The INI file contains various
  412. options and switches that control how DOSmenu (and DMutil) will work for you
  413. and your users.  These are discussed here.
  414.  
  415.  
  416. [DMutil]
  417.  
  418. Activate mouse=
  419. ───────────────
  420. Default=yes.  With the registered version, you may optionally engage use of a
  421. mouse (if a mouse driver is available) or disengage use.  Disengaging can be
  422. useful if your system takes a long time to reset the mouse driver when loading
  423. DOS mouse-aware programs.
  424.  
  425. DOSmenu Startup Batch File=
  426. ───────────────────────────
  427. Default={directory you built files in originally}.  This option allows DMutil
  428. to load your startup batch file when loading the other menu system files with
  429. the 'DMUTIL' command.  You should enter the path and name of your startup
  430. batch file here.
  431.  
  432.  
  433. [Interface]
  434.  
  435. Use Mouse=
  436. ──────────
  437. Default=yes.  With the registered version, you may optionally use your mouse
  438. to manipulate your menu.  A mouse driver (like MOUSE.COM) must be loaded on
  439. the work station to enable mouse support.
  440.  
  441. Desktop Color=
  442. ──────────────
  443. Default=71 or 70(monochrome machines).  This number determines the color of
  444. the menu system's desktop background.  The first number represents the
  445. foreground color, and the second number represents the background color.  If
  446. you enter only one color, then it will represent the background color and the
  447. foreground color will be 0.  Entering nothing or 0 will disable the desktop
  448. background.  For example:
  449.  
  450.      71 = white on blue
  451.      7  = black on white
  452.      0  = no background
  453.  
  454. The standard MS-DOS colors are:
  455.  
  456.      0=black  1=blue  2=green  3=cyan  4=red  5=magenta  6=brown  7=white
  457.  
  458. Information Color=
  459. ──────────────────
  460. Default=7.  This single number determines the background color of the
  461. informations lines on the desktop.  You may enter a number from 0 to 7.  The
  462. colors are identified above.  (Try Desktop Color=31; Information Color=3.)
  463.  
  464. Use CRT Border=
  465. ───────────────
  466. Default=yes.  Do you wish your CRT's border to be filled in.  This option does
  467. not work on monochrome monitors.
  468.  
  469. Max Menu Window Height=
  470. ───────────────────────
  471. Default=10.  You may enter a number from 3 to 17 to define the max height of
  472. all menu windows.
  473.  
  474. Screen Saver Time=
  475. ──────────────────
  476. Default=5.  0 disables screen saving.  (Only works with registered version.)
  477.  
  478. Screen Saver File=
  479. ──────────────────
  480. Default=[path]dmsaver.exe 1.  You may use your own saver as well.  Keep in
  481. mind that the screen saver feature will not function if a timed logout has
  482. been defined for the system (see below).  The parameter 1 (or 2 or 3) defines
  483. what type of screen saver you will use.  Type DMSAVER ? for specifics.
  484.  
  485. Screen Title=
  486. ─────────────
  487. Default=DOSmenu Menu System.  You may place your company name or something
  488. similar here, if you desire.  If this item is left blank, then there will be
  489. no information line at the top of the screen.
  490.  
  491. Support Comment=
  492. ────────────────
  493. Default=For HELP Please Call Computer Support.  This phrase will be shown
  494. blinking at the bottom of the main help window so that your users will easily
  495. know what to do in case they need help.
  496.  
  497.  
  498. [Network]
  499.  
  500. Using NetWare=
  501. ──────────────
  502. Default=yes.  This switch tells DOSmenu whether it should make NetWare API
  503. calls to determine the actual user and server in force when it is running.
  504. These two pieces of information can be overridden by you whenever you wish by
  505. one of the following methods:
  506.  
  507.      Set DOS variables equal to the current network user and file server and
  508.      then define those variables for DOSmenu (below).  This option is useful
  509.      when running on non-NetWare networks.  For instance, if you set the DOS
  510.      variable _USER to the actual user ID in the network login script, then it
  511.      will be found and used by DOSmenu if you enter _USER as the user DOS
  512.      variable with the option below.
  513.  
  514.           Non-NetWare DOS User Var=_user
  515.           Non-NetWare DOS Server Var=_server
  516.  
  517.      Or you may place them directly in the batch file, like
  518.  
  519.           path\dosmenu /batch /u:%_user% /s:%_server%
  520.  
  521.      or type them when running the batch file, like
  522.  
  523.           menu /u:_user /s:_server
  524.  
  525. The priority DOSmenu uses to obtain this information is as follows:
  526.  
  527.      1.  Actual NetWare information if NetWare=yes and on a Novell network.
  528.      2.  Already set DOS variables (overrides 1.).
  529.      3.  Command line parameters (overrides both 1. and 2.).
  530.  
  531. Non-NetWare DOS User Var=
  532. ─────────────────────────
  533. Default={nothing}.  As discussed above, this option allows DOSmenu to find the
  534. user ID for the person running the menu system when not on a NetWare network
  535. (or when you decide to override the API method).
  536.  
  537. Non-NetWare DOS Server Var=
  538. ───────────────────────────
  539. Default={nothing}.  As discussed above, this option allows DOSmenu to find the
  540. server name for the person running the menu system when not on a NetWare
  541. network (or when you decide to override the API method).
  542.  
  543. Any-Network DOS Node Var=
  544. ─────────────────────────
  545. Default={nothing}.  This option allows DOSmenu to use the work station network
  546. node address as a determinant as to whether a menu item will be available or
  547. not.
  548.  
  549. Private Directory=
  550. ──────────────────
  551. Default=c:\.  DOSmenu will write an on-the-fly batch file to run menu commands
  552. embedded within the menu file _only_ when there is more than one command for
  553. the chosen menu item.  When this happens, this batch file must be written to
  554. an area where the user has write and erase rights.
  555.  
  556. Typically, on networks, a 'private' area is mapped for each user on login as
  557. their personally mapped drive (actually just a network directory based on the
  558. user's ID) on the server.  In such a case, you should place that location
  559. here.  An example might be H:\ if you had performed a
  560.  
  561.      MAP ROOT F:\USERS\%LOGIN_NAME to H:\ (on a Novell network).
  562.  
  563. If no such directory is mapped or used on your network, then we suggest using
  564. C:\, which should always be private to the user for every session.
  565.  
  566. If you would rather have all users write their on-the-fly batch files (when
  567. necessary) to the same location, that is OK as long as you are on a Novell
  568. network because DOSmenu also knows and uses the actual user connection number
  569. as part of the batch file name, e.g., _DMBT4.BAT, where this user is using
  570. connection number 4.  In this case, simply define the private directory as any
  571. one place on the network where all users have write and erase rights.
  572.  
  573. Remember, this batch file is only written if more than one DOS command is
  574. defined as part of a chosen menu item.  You may actually specify two private
  575. locations for this option, like
  576.  
  577.      Private Directory=h:\,c:\
  578.  
  579. to help take care of special cases like when a user does not have the proper
  580. network mappings.
  581.  
  582. You may use the syntax  =%var1%,%var2%  to use the contents of DOS variables
  583. for this purpose.
  584.  
  585. On a stand-alone environment, you do not need to define a private directory,
  586. and in that case, any temporary batch files will be written to DOSMENU.EXE's
  587. home directory.
  588.  
  589. Allow Personal Menus=
  590. ─────────────────────
  591. Default=yes.  If yes, then each user may maintain, run and edit a personal
  592. menu file, DOSMENU.PER, that resides in their defined private directory (see
  593. above).  Users must have write and erase rights to this directory.
  594.  
  595. Force Personal NoBreaks=
  596. ────────────────────────
  597. Default=yes.  If personal menus are allowed, this protects the security of
  598. your system by forcing all menu items on the user menu to be run with the
  599. {r=nobreak} right set.  This effectively eliminates the possibility of a user
  600. breaking out of a batch file or DOS command by pressing ^C or ^Break.
  601. Strongly recommended.  However, understand that any batch file that uses an
  602. embedded NetWare search mapping command will not be honored in this case.  The
  603. alternative is to use the included NOBRK TSR utility.
  604.  
  605.  
  606. Timed Group=
  607. ────────────
  608. Default={nothing}.  Enter one group name here to optionally time that group
  609. only if Timed Quit Menu Time= is entered below.
  610.  
  611. Untimed Group=
  612. ──────────────
  613. Default={nothing}.  Enter one group name here to optionally ignoring timing
  614. for that group only if Timed Quit Menu Time= is entered below.
  615.  
  616.  
  617. [Security]
  618.  
  619. F2 Run DOS Password=
  620. ────────────────────
  621. Default={nothing}.  If filled in, DOSmenu will require this password before
  622. allowing users the option of composing and running their own DOS commands.
  623. For safety reasons, if a user enters nothing or a command that has the word
  624. 'command' anywhere within it, then it will be ignored.
  625.  
  626. F9 Admin Password=
  627. ──────────────────
  628. Default={nothing}.  If filled in, DOSmenu will require this password before
  629. allowing anyone to edit the menu system files.  If no password is defined,
  630. then anyone can edit your menu system.  This password is also queried by
  631. DMutil in case someone tries to run DMutil from DOS.
  632.  
  633. F10 Quit Menu Password=
  634. ───────────────────────
  635. Default={nothing}.  If filled in, DOSmenu will require this password before
  636. allowing users the option of quitting the menu system.  If no password is
  637. defined, then the user will be prompted to be sure they wish to quit the menu
  638. system.
  639.  
  640. NOTE: After defining password(s), you should compile the DOSMENU.INI file with
  641.  
  642.      DMUTIL /C DOSMENU.INI
  643.  
  644. for security reasons.
  645.  
  646. Password Exception Group=
  647. ─────────────────────────
  648. Default={nothing}.  If filled in, then members of this group will not be asked
  649. for any password from within DOSmenu, even if they are defined.
  650.  
  651. Use Software Metering=
  652. ──────────────────────
  653. Default=no.  When enabled, the METER right will be enabled in your menu
  654. system.  You will be able to meter any DOS software application your users
  655. employ, which can help keep you and your company out of trouble.  See the
  656. Software Metering Service section for specifics.
  657.  
  658. Meter File=
  659. Default={nothing}.  If metering is enabled, then a path and filename must be
  660. entered here.  This file will become the central metering file for your system
  661. (on the current server).  Users must have write and erase rights to this file.
  662.  
  663. Use Logging=
  664. ────────────
  665. Default=yes.  When enabled, the user's log file is appended to every time a
  666. user performs a menu action.  The file is normally written to the user's
  667. defined private directory.
  668.  
  669. Central Logging=
  670. ────────────────
  671. Default=no.  If yes, then one log file for all users is written to the file
  672. specified in the next entry.
  673.  
  674. Central Log File=
  675. ─────────────────
  676. Default={nothing}.  Where to write central log information to, if activated.
  677. Users must have write and erase rights to this area.
  678.  
  679. Max Log File Size=
  680. ────────────────── 
  681. Default={nothing}.  If you enter a number here, then DOSmenu will delete the
  682. log file when its gets to the size you specify, like:  
  683.  
  684.      Max Log File size=500000.
  685.  
  686. Timed Quit Menu Time=
  687. ─────────────────────
  688. Default=0.  This option, if enabled, allows you to control your user's allowed
  689. time of inactivity before forcing them off of the network (or simply out of
  690. the menu system).  Entering 0 or nothing disables this function.
  691.  
  692. Timed Quit Menu Command=
  693. ────────────────────────
  694. Default=logout.  If automatic quitting is enabled via the option above, then
  695. whatever is placed in this option will be run when the automatic quit is
  696. invoked.  Obviously entering 'logout' will log the user out of a Novell
  697. network.  If you simply wanted to remove a user from the menu system at
  698. automatic quit, then enter 'goto end' here.  This in affect will take the user
  699. out of the MENU.BAT internal loop that normally keeps DOSmenu going.
  700.  
  701.  
  702. [Global Keys]
  703.  
  704. AltF? Text= (where ? = 1 to 5)
  705. ───────────
  706. Default={variable}.  These lines determine what text will show by a global
  707. alternate function key.
  708.  
  709. Alt? Cmnd= (where ? = 1 to 5)
  710. ──────────
  711. Default={variable}.  These lines hold the DOS command for the appropriate
  712. global alternate function key.  These commands are alsways shown, when
  713. defined, and are run with the {r=nobreak} option, just like F2 DOS commands.
  714. You may place a '@' within a command to prompt for a question.  If no commands
  715. are defined, then pressing the Alt key will not show them on screen.
  716.                                MENU DEFINITION
  717. ══════════════════════════════════════════════════════════════════════════════
  718.  
  719. There are two conventions used to control the menu or menus a user gets when
  720. running the menu system, server-based and rights-based.  These conventions are
  721. much more difficult to explain than to actually use, so we will briefly both
  722. describe and show example code, offset with ';─────', throughout.
  723.  
  724.  
  725. SERVER-BASED CONVENTION
  726. ═══════════════════════
  727.  
  728. Approaching the DOSMENU.MNU menu file from the top down, the system can be
  729. thought of as a server-based system.  This can become quite robust, as in our
  730. eight-server domain or quite simple, as in the case of a single server or a
  731. stand-alone environment.  Basically, the file is divided vertically into
  732. server sections that are defined by the actual server name.  An all
  733. encompassing name is also allowed and it is called ALL.  Each server name, and
  734. the ALL choice, must start at the beginning of a line with a colon, e.g.,
  735. :OUR_SERVER or :ALL.  You can have more than one section defined with the same
  736. server name, such as an :ALL section at the beginning and at the end.
  737. Here is a segment of a menu definition showing the vertical server-based
  738. method:
  739.  
  740. ;─────
  741. %Main Menu
  742.  
  743. :ALL
  744. Word Perfect
  745.         wp
  746.  
  747. :MAIN_SERVER
  748. Paradox
  749.         paradox
  750. Lotus 1-2-3
  751.         123
  752.  
  753. :SECOND_SERVER
  754. Proprietary application
  755.         ourapp
  756.  
  757. :ALL
  758. Logout of the network
  759.         logout
  760. ;─────
  761.  
  762. In the above example, you can see that a person who is running on the main
  763. server would get the following main menu:
  764.  
  765. ─────
  766. Word Perfect
  767. Paradox
  768. Lotus 1-2-3
  769. Logout of the network
  770. ─────
  771. while a person running on the second server would get:
  772.  
  773. ─────
  774. Word Perfect
  775. Proprietary application
  776. Logout of the network
  777. ─────
  778.  
  779. Note that any menu items (and sub-menus and their items) may be accessible
  780. depending upon which section they are placed under, subject to the next
  781. convention of discrimination, rights-based, which is discussed below.
  782.  
  783.  
  784. RIGHTS-BASED CONVENTION
  785. ═══════════════════════
  786.  
  787. A secondary, more powerful means of segregating the menu file between users is
  788. the rights-based method.  Whereas the server-based convention may be viewed as
  789. vertical, think of the rights-based convention as horizontal.  In other words,
  790. after deciding which server a user is using, we then must decide what the
  791. rights of that user are, and this convention does just that.  Let's discuss
  792. each method in detail.
  793.  
  794.  
  795. All rights assumed
  796. ──────────────────
  797. Right = no right line entered.  This method is the quickest and least secure
  798. way of checking users rights because it checks nothing.  In other words, a
  799. menu item will show up on a user's menu if it is under the correct server name
  800. (or ALL), period.  Here, you will be relying on your defined network rights to
  801. determine whether a user will be able to _run_ an item or not (they will see
  802. them on their menu).  This method is, of course, exactly what you would
  803. normally use if you were on a stand-alone environment.
  804.  
  805. ;─────
  806. Paradox
  807.         paradox
  808. ;─────
  809.  
  810. User gets item if it is available, period.
  811.  
  812.  
  813. Directory rights
  814. ────────────────
  815. Right = {d=directory name or d=directory name1,directory name2 ..}.  DOSmenu
  816. will look to see if any of the listed directories exist for the user when it
  817. reads the menu file, and if none of them do, it will not place the item on the
  818. user's menu.
  819.  
  820. ;─────
  821. Paradox 
  822.         {d=c:\apps\paradox}
  823.         paradox
  824. ;─────
  825.  
  826. User gets item only if F:\APPS\PARADOX is 'visible' in the user's environment.
  827.  
  828.  
  829. File rights
  830. ───────────
  831. Right = {f=file name or f=file name1,file name2 ..}.  DOSmenu will look to see
  832. if any of the listed files exist for the user when it reads the menu file, and
  833. if none of them do, it will not place the item on the user's menu.
  834.  
  835. ;─────
  836. Paradox
  837.         {f=f:\apps\paradox\paradox.exe}
  838.         paradox
  839. ;─────
  840.  
  841. User gets item only if F:\APPS\PARADOX\PARADOX.EXE is 'visible' in the user's
  842. environment.
  843.  
  844.  
  845. Server rights (NetWare only unless DOS variable/command line parameters used)
  846. ─────────────
  847. Right = {s=server_name1 or s=server_name1,server_name2 ..}.  Do not confuse
  848. this method with the server-based convention.  Here, by placing one or more
  849. server names with a menu item, you are saying only show this item when the
  850. user is logged into one of those servers.
  851.  
  852. ;─────
  853. Paradox
  854.         {s=main_server}
  855.         paradox
  856. ;─────
  857.  
  858. User gets item only if the user is logged into and running on MAIN_SERVER.
  859.  
  860.  
  861. Group rights (NetWare only unless DOS variable/command line parameters used)
  862. ────────────
  863. Right = {g=group_name1 or g=group_name1,group_name2 ..}.  Normally you define
  864. groups to group certain users that you can later assign trustee rights to,
  865. thereby giving them access to certain programs.  This method allows you to use
  866. that work when discriminating in your menu system.  There is an advantage
  867. here, however, in that even if you do not bother with trustee rights and your
  868. network is open, DOSmenu will act like it is all set up just right.  In other
  869. words, DOSmenu doesn't care about actual rights; it only cares about whether
  870. the user is in the group name or group names that you tell it.  If not, then
  871. the user does not get the menu item displayed (and therefore cannot run it).
  872.  
  873. ;─────
  874. Paradox
  875.         {g=paradox}
  876.         paradox
  877. ;─────
  878.  
  879. User gets item only if a member of group PARADOX.
  880.  
  881.  
  882. User rights (NetWare only unless DOS variable/command line parameters used)
  883. ───────────
  884. Right = {u=user_id or u=user_id1,user_id2 ..}.  This method takes the
  885. discrimination down to the actual user ID running the system.  If the user
  886. name is in the list, then the user gets the item on their menu (if any other
  887. specified rights are also approved and the server-based convention allows it).
  888.  
  889. ;─────
  890. Paradox
  891.         {u=joeb}
  892.         paradox
  893. ;─────
  894.  
  895. User gets item only if his user logon ID is JOEB.
  896.  
  897.  
  898. Node rights (DOS variable/command line parameter is required for this right)
  899. ───────────
  900. Right = {n=node_address or n=node_address1, node_address2 ..}.  This method
  901. takes the discrimination down to the actual work station.  If the node address
  902. is the same as the work station, the user gets the item on their menu (if any
  903. other rights are also approved and the server-based convention allows it).
  904.  
  905. ;─────
  906. Paradox
  907.         {n=fa164505}
  908.         paradox
  909. ;─────
  910.  
  911. User gets item only if his work station's address is FA164505.
  912.  
  913. You must pull the work station's node address to DOS by setting it to a DOS
  914. variable from within the network's initial login script.  Only then can you
  915. check for it from the menu system.
  916.  
  917.  
  918. Environment rights
  919. ──────────────────
  920. Right = {e=dos_env_var~env_var_text, ..}.  This powerful right tests for the
  921. contents of a DOS variable.  For instance, to run a menu item depending on
  922. what room a person is in, set ROOM=room_number at login; then enter this right
  923. for the menu item in the menu file:  {e=room~102}  to test for room 102.  To
  924. test whether the var room is null (does not exist), type {e=room~}.
  925.  
  926.  
  927. Today rights
  928. ────────────
  929. Right = {t=su,mo,tu,we,th,fr,sa}.  This right tests to see if the current day
  930. is equal to the day specified.
  931.  
  932.  
  933. Date greater than rights
  934. ────────────────────────
  935. Right = {>=MM/DD/YYYY}.  This right tests to see if the current day is greater
  936. than the specified date (must be in this format).
  937.  
  938.  
  939. Date same as rights
  940. ───────────────────
  941. Right = {==MM/DD/YYYY}.  This right tests to see if the current day is the
  942. same as the specified date (must be in this format).
  943.  
  944.  
  945. Date less than rights
  946. ─────────────────────
  947. Right = {<=MM/DD/YYYY}.  This right test to see if the current day is less
  948. than the specified date (must be in this format).
  949.  
  950.  
  951. Password rights
  952. ───────────────
  953. Right = {p=password where password is any alphanumeric, non-case sensitive,
  954. from 1 to 10 characters long}.  Placing a password on a menu item means that
  955. when the user selects this item (no matter what type it is - command or
  956. sub-menu), the user will be prompted for the correct password.
  957.  
  958. ;─────
  959. Paradox
  960.         {p=restrict}
  961.         paradox
  962. ;─────
  963.  
  964. User gets item only if he or she can answer the password prompt with RESTRICT.
  965.  
  966.  
  967. Question rights (not really a 'right')
  968. ───────────────
  969. Right = {q=your question that demands a yes/no answer?}  This method pops up
  970. your question for a Yes or No answer.  If the answer is no, then the item will
  971. not be run.
  972.  
  973. If a '!' is placed prior to the question, {q=!comment}, then the question
  974. becomes a comment only.
  975.  
  976. ;─────
  977. Paradox
  978.         {q=Are you sure?}
  979.         paradox
  980. ;─────
  981.  
  982.  
  983. View rights (not really a 'right')
  984. ───────────
  985. Right = {v=text_file_name}.  This method reads the text file and then displays
  986. it in a window on screen.  The user can press escape to abort running the menu
  987. item.  A maximum of 20 lines of 72 characters or less will be shown.
  988.  
  989.  
  990. Software metering rights (not really a 'right')
  991. ────────────────────────
  992. Right = {m=command:number}.  Entering this right on an item's right line will
  993. force the command for the item to be metered, if metering is turned on and the
  994. meter file has been defined (within DOSMENU.INI).  See the Software Metering
  995. Service section for a complete discussion.
  996.  
  997. ;─────
  998. W WordPerfect
  999.         {m=wp51:25}
  1000.         f:\apps\wp\wp
  1001. ;─────
  1002.  
  1003. This item runs as long as less than 25 users are running it at the same time.
  1004.  
  1005.  
  1006. Run rights (not really a 'right')
  1007. ──────────
  1008. Right = {r=nobreak,clear}.
  1009. NOBREAK:  This is where you determine whether batch files will be run with a
  1010. second copy of the DOS command processor (NOBREAK) or not.  This right is only
  1011. appropriate when running multi-line commands (which DOSmenu turns into batch
  1012. files) or by running batch files; it should not be used unless batch files are
  1013. being run (and then it is your choice).  One disadvantage of running NOBREAK
  1014. is that NetWare search mapping commands generated within a batch file will not
  1015. work.  Consider the included NOBRK TSR utility for fool-proof disabling of the
  1016. ^C and ^Break keys.
  1017.  
  1018. ;─────
  1019. M My batch file
  1020.         {r=nobreak}
  1021.         dir \
  1022.         pause
  1023. ;─────
  1024.  
  1025. ;─────
  1026. WordPerfect
  1027.         {r=nobreak}
  1028.         wp.bat
  1029. ;─────
  1030.  
  1031. CLEAR: This simply clears the DOS screen before running the menu item command.
  1032.  
  1033.  
  1034. Location rights (not really a 'right' -for notices in note file only)
  1035. ───────────────
  1036. Right = {r=one_to_three_letters}.  You may optionally place this right on a
  1037. notice to set the location of it on the screen, like:
  1038.  
  1039. ;─────
  1040. {l=tl}
  1041. A note
  1042. ;─────
  1043.  
  1044. where T=top, L=left, B=bottom, and R=right, N=noise and F=Flash title.
  1045.  
  1046.  
  1047. NOTES
  1048. ═════
  1049.  
  1050. More than one of the above methods may be used at one time, either within the
  1051. same right grouping or by having two or more groupings separated with a ';'.
  1052. For example, you can place both a server (s=) method and a group (g=) method
  1053. on the same menu item, like:
  1054.  
  1055. ;─────
  1056. Paradox
  1057.         {g=paradox} {s=server1}
  1058.         paradox
  1059. ;─────
  1060. Here, it is read as member of paradox group _AND_ on server1.
  1061.  
  1062. ;─────
  1063. Paradox
  1064.         {g=paradox;s=server1}
  1065.         paradox
  1066. ;─────
  1067. Here, it is read as member of paradox _OR_ on server1.
  1068.  
  1069. Note that when using more than one grouping, each of the groupings must be
  1070. true for the item to be shown (they are ANDed).  When using one or more
  1071. methods within the same group, they are ORed.
  1072.  
  1073. Placing a '!' before a name means 'not'.  Where {g=paradox} means if the
  1074. current user is a member of group paradox, then display the menu item;
  1075. {g=!paradox} means display the item only if the current user is NOT a member
  1076. of group paradox (they are ORed only within each set of braces {}).
  1077.  
  1078. You may use spaces instead of commas.  The syntax {g=group1,group2} is the
  1079. same as {g=group1 group2}.
  1080.  
  1081. The biggest rule that you must remember about the rights methods are that
  1082. within each set of braces {}, the answer must be true.  So if you use more
  1083. than one set of braces for a menu item, they all must be true.  For example:
  1084.  
  1085. ;─────
  1086. P Paradox
  1087.         {g=paradox} {u=joe,jim;n=fa164505} {s=!server2}
  1088. ;─────
  1089.  
  1090. will only show on the menu if the user is a member of the PARADOX group _AND_
  1091. the user is JOE _OR_ JIM _OR_ the node address is FA164505 _AND_ the user is
  1092. not on SERVER2.
  1093.  
  1094.  
  1095. TESTING YOUR MENU
  1096. ═════════════════
  1097.  
  1098. After you have placed a lot of restrictions on your menu items, you may find
  1099. it frustrating to see what the final outcome of an item looks like.  There is
  1100. a way around this.
  1101.  
  1102. Enter a bogus user ID and server name from the command line.  For instance, if
  1103. you reside on SERVER1 but wish to check the appearance of SERVER2's menu, then
  1104. enter the startup batch file with the command
  1105.  
  1106.      MENU /U:USER_ID /S:SERVER2
  1107.  
  1108. where user_id is the name you wish to check for SERVER2.  You can do this for
  1109. all of your servers and any user.
  1110.                                   MENU RULES
  1111. ══════════════════════════════════════════════════════════════════════════════
  1112.  
  1113. The syntax for the menu file requires certain conventions.  In most cases,
  1114. DOSmenu will issue an error message if it has trouble interpreting the file
  1115. because of a syntax violation of one of the below described rules.  If you get
  1116. stuck in an error loop within the batch file, press Alt-F10 at the read error
  1117. message window to quit.
  1118.  
  1119.  
  1120. RULES
  1121. ═════
  1122.  
  1123. Main menu name
  1124. ──────────────
  1125. The first line of the file must be the main menu's name, starting with a
  1126. percent symbol '%'.  You can optionally place the starting x and y coordinates
  1127. of the menu window after the menu name, like:  %Main Menu, 5, 10.  This means
  1128. the upper left corner of the menu will be 5 columns from the left edge and 10
  1129. rows from the top.
  1130.  
  1131. Server sections
  1132. ───────────────
  1133. There must be at least one server name before any menu items, unless
  1134. operating in a standalone environment.  In a network environment, use :ALL, as
  1135. a minimum, just after the main menu title and the one REQUIRED blank line.
  1136.  
  1137. Comments
  1138. ────────
  1139. Any line starting with a semi-colon ';' is a programming comment only.
  1140.  
  1141. Blank lines
  1142. ───────────
  1143. Blank lines are only allowed (and, in fact, REQUIRED) before server sections
  1144. and menu titles.  See the Menu File Example section for a properly formatted
  1145. file.
  1146.  
  1147. Menu action character
  1148. ─────────────────────
  1149. The first letter of a menu item will always be highlighted and will be
  1150. searched when the used presses a key to move to a particular menu item.  It
  1151. may or may not be part of the first word of the menu item.  For example,
  1152.  
  1153.      Lotus 1-2-3
  1154. and
  1155.  
  1156.      L Lotus 1-2-3
  1157.  
  1158. offer the same result.  It is a cosmetic choice that you must make.  Of
  1159. course, you could also use
  1160.  
  1161.      1 Lotus 1-2-3.
  1162.  
  1163. Indenting
  1164. ─────────
  1165. All server name lines and menu item lines must NOT be indented.  All help
  1166. lines, rights lines and DOS commands MUST be indented at least one space.  A
  1167. tab character is allowed for the indentation.
  1168.  
  1169. Rights line length
  1170. ──────────────────
  1171. The maximum length from the beginning of the rights ({}{}..) line from
  1172. beginning to end (not including spaces or beginning tabs) is 128.  You may
  1173. have more than one rights line per menu item for convenience, put there
  1174. character count must all add up to 128 or less.
  1175.  
  1176. Parameters
  1177. ──────────
  1178. Single-command menu items may be setup to ask the user for a parameter prior
  1179. to actually running the command associated with the menu item.  This is not
  1180. allowed for multi-command menu items.  Place a question mark '@' at the exact
  1181. location you wish to add input to the command.  Here are some examples:
  1182.  
  1183. dir @ /p
  1184. chkdsk @:
  1185. format @: /u
  1186.  
  1187. For multi-command items and multi-response items, use the DMquery syntax.
  1188.  
  1189. Sub-menu names
  1190. ──────────────
  1191. All sub-menu names, both when called as a command and when entered as a
  1192. sub-menu title, must start with the percent symbol '%'.  There MUST be a
  1193. blank line before the sub-menu name.  Sub-menus must come somewhere _after_
  1194. the menu item that calls them.
  1195.  
  1196. Help lines
  1197. ──────────
  1198. Help lines for each menu item, if used, must be indented and start with a
  1199. number symbol '#'.  There can be a maximum of one help line per menu item.
  1200.  
  1201.  
  1202. Menu commands
  1203. ─────────────
  1204. If you place a %dos_var% syntax within the command, the actual DOS variable's
  1205. text will be used.  Make sure the first '%' is not the first character of the
  1206. command or it will be interpreted as a sub-menu name.  When this is necessary,
  1207. place 'call' in front of the command, like:
  1208.  
  1209.      call %drive%:\apps\paradox
  1210.  
  1211.  
  1212. NOTES
  1213. ═════
  1214.  
  1215. You may rename DOSMENU.MNU to another name or copy it to another menu file
  1216. because DOSmenu will run any menu file that you have as long as you
  1217. specify that file name on the command line.  Note that the .MNU is assumed.
  1218. No other extension is allowed.
  1219.  
  1220.      MENU [/U:USER1] [/S:SERVER1] [PATH]MYMENU[.MNU]
  1221.  
  1222. and
  1223.  
  1224.      MENU MYMENU
  1225.  
  1226. will both attempt to load MYMENU.MNU, the later from DOSmenu's home directory.
  1227.  
  1228.  
  1229. LOADING ADDITION MENUS
  1230. ══════════════════════
  1231.  
  1232. You may switch menu files from within the menu system by LOADing them or
  1233. /MENUing them.  This is accomplished by placing the /LOAD [PATH]MENU_FILE or
  1234. /MENU [PATH]MENU_FILE as the first and only command line for a menu item,
  1235. like:
  1236.  
  1237. ;─────
  1238. Support Menu
  1239.         /load [path]support[.mnu]
  1240. Word Perfect
  1241.         wp
  1242. ;─────
  1243.  
  1244. Here, if Support Menu is chosen, then the system will load the SUPPORT.MNU
  1245. menu file (from DOSmenu's _home_ directory if no path is given) to temporarily
  1246. replace the active menu file.  You may do this an unlimited number of times.
  1247. After a command is run, the original main menu reloads.
  1248.  
  1249. To prevent the original main menu from reloading, use /MENU.  This command
  1250. forces the menu to become the permanent new default main menu.  If you wish
  1251. users to have the option of going back to the original menu later, you will
  1252. have to give them that option with another /MENU command in the new menu,
  1253. like:
  1254.  
  1255. ;─────
  1256. M Main Menu
  1257.         /menu [path]dosmenu[.mnu]
  1258. ;─────
  1259.  
  1260.  
  1261. CHAINING STARTUP BATCH FILES
  1262. ════════════════════════════
  1263.  
  1264. You may switch to another startup batch file (perhaps on an another attached
  1265. server?) from within a menu.  This is accomplished by placing the /NEW
  1266. [PATH]BATCH_NAME[.BAT] as the first and only command line for a menu item,
  1267. like:
  1268.  
  1269. ;─────
  1270. Support Menu
  1271.         /new [path]support[.bat]
  1272. Word Perfect
  1273.         wp
  1274. ;─────
  1275.  
  1276. Here, if Support Menu is chosen, then the system will quit the current batch
  1277. file, dumping the menu environment variable, and run the [PATH]SUPPORT.BAT
  1278. batch file.  This file now becomes the new cyclic batch file that operates
  1279. DOSmenu.  To get back to the original startup batch file, issue another /NEW
  1280. command from your active menu file.
  1281.  
  1282.  
  1283. LOGGING IN TO OTHER SERVERS
  1284. ═══════════════════════════
  1285.  
  1286. You may login to another server from within a menu.  You do this by placing
  1287. the /LOGIN command before the actual command that calls your login sequence.
  1288. The difference between /NEW and /LOGIN is that /LOGIN does not check to see if
  1289. your command actually exists (it would be impossible) and the command does
  1290. not have to be a batch file.  Therefore, you should attempt to be sure your
  1291. login sequence will protect you in case the user fails the login.  DMlogin
  1292. works great in this regard.  It keeps you users from DOS, period, until the
  1293. login is successful.  Of course, the new server login script should (really
  1294. must for security) call another DOSmenu startup batch file on the new server.
  1295.  
  1296. Place the /LOGIN [PATH]COMMAND as the first and only command line for a menu
  1297. item, like:
  1298.  
  1299. ;─────
  1300. Login to Support
  1301.         /login [path]support[.bat]
  1302. -or-    /login login server2/user1
  1303. -or-    /login login /pro=server2 server2/user1 ;for NetWare Naming Service
  1304. Word Perfect
  1305.         wp
  1306. ;─────
  1307.  
  1308. Here, if Login to Support is chosen, then the system will quit the current
  1309. batch file, dumping the menu environment variable, and run your command
  1310. file (which should attempt a login sequence).
  1311.                                   SUB-MENUS
  1312. ══════════════════════════════════════════════════════════════════════════════
  1313.  
  1314. Sub-menus are just like the main menu except that their title is the first
  1315. line of their definition.  The main menu's title is the first line of the
  1316. menu file.  Their title must start with a percent '%' character, and when
  1317. called from another menu item, this percent character must be included.
  1318.  
  1319. ;─────
  1320. %Main Menu
  1321.  
  1322. Word Perfect
  1323.         wp
  1324. Utilities
  1325.         %Utility Menu
  1326. Paradox
  1327.         paradox
  1328.  
  1329. ;The , 5, 10 is optional and determines x and y menu window coordinates
  1330. %Utility Menu, 5, 10
  1331. Directory of...
  1332.         dir @ /p
  1333. Check disk
  1334.         chkdsk @:
  1335. ;─────
  1336.  
  1337. Here, the sub-menu '%Utility Menu' is called from one of the main menu items.
  1338.  
  1339. Sub-menus follow the server-based convention along the vertical development of
  1340. the menu file.  In other words, if a sub-menu is found under the :SERVER2
  1341. server name line, then it will not be accessible from a menu calling it which
  1342. is situated under :SERVER1.  Sub-menus are typically placed at the end of the
  1343. menu file under an :ALL alias server name section.
  1344.  
  1345. Although you may place up to 15 sub-menus per menu file, we recommend not more
  1346. than 10.  This is to protect the integrity of your network (DOSmenu will not
  1347. load if there is not enough memory).  15 sub-menus take about 550K.  10
  1348. sub-menus take about 450K.  Remember, you may always load additional menus
  1349. with the /LOAD and /NEW commands.
  1350.  
  1351.                              COMPILING MENU FILES
  1352. ══════════════════════════════════════════════════════════════════════════════
  1353.  
  1354. The DMutil program will compile and decompile INI and menu files, if desired.
  1355. The syntax is:
  1356.  
  1357.      DMUTIL /C [PATH]FILENAME
  1358.  
  1359. The output compiled file will be the same name.  You can then later decompile
  1360. the file with the command:
  1361.  
  1362.      DMUTIL /D [PATH]FILENAME
  1363.  
  1364. Compiling INI and menu files is not, repeat not, required.  Your users can
  1365. run DOSmenu all day long without ever compiling one file.  However, there is
  1366. one overriding reason why you may wish to consider compiling them after they
  1367. have been tested -security.  Your menus are much more secure when compiled.
  1368.                             TRANSLATING MENU FILES
  1369. ══════════════════════════════════════════════════════════════════════════════
  1370.  
  1371. You can easily translate NetWare batch files to DOSmenu batch files with the
  1372. DMutil utility with the following command:
  1373.  
  1374.      DMUTIL /T [PATH]NETWARE_MENU_NAME
  1375.  
  1376. The generic default server name flag :ALL will be placed two lines after the
  1377. main menu title, giving access to all servers initially.
  1378.  
  1379. If your NetWare menu used any @variable"fill-in lines", then you must change
  1380. them within the new menu file to DOSmenu's format as it uses the external
  1381. DMquery utility for this purpose with additional options.
  1382.                             TEMPORARY BATCH FILES
  1383. ══════════════════════════════════════════════════════════════════════════════
  1384.  
  1385. Normally DOSmenu simply takes a menu's DOS command and stuffs it into the DOS
  1386. variable _dmcmd so that the startup batch file, MENU.BAT, can then run it
  1387. after DOSmenu quits.  However if their is more than one DOS command, this
  1388. approach would not work.  Therefore DOSmenu instead will make a temporary
  1389. batch file and stuff the name of that batch file to the variable instead.
  1390.  
  1391. The location and name of the temporary batch file is as follows:
  1392.  
  1393. Name
  1394. ────
  1395. On a Novell network, the name will be _DMBTn.BAT where n is the actual
  1396. network connection number taken by the user's work station.  _DMBTnnn.BAT is
  1397. used if the connection number is greater than 999.
  1398.  
  1399. If not on a Novell network, then the batch file is simply named _DMBAT.BAT.
  1400.  
  1401. Location
  1402. ────────
  1403. If the Private Directory option in the INI file was filled out with a
  1404. directory, then the batch file will be written and run from that directory.
  1405. If not, then it will be written and run from DOSMENU.EXE's home directory,
  1406. which is fine for stand-alone environments.
  1407.  
  1408. Notes
  1409. ─────
  1410. The DOS batch file word 'call ' is placed at the beginning of every line that
  1411. does not start with a ':' (which could be a label).  This syntax _only_
  1412. affects commands that are actually batch file names, allowing them to return
  1413. to DOSmenu's temporary batch file at completion.
  1414.  
  1415. Example
  1416. ───────
  1417. If a menu item looked like this:
  1418.  
  1419. ;─────
  1420. Word Perfect
  1421.         f:
  1422.         cd\apps\wp51
  1423.         wp
  1424.         h:
  1425.         cd\
  1426. ;─────
  1427.  
  1428. then the corresponding batch file would look like this:
  1429.  
  1430. call @echo off
  1431. call f:
  1432. call cd\apps\wp51
  1433. call wp
  1434. call h:
  1435. call cd\
  1436.                           DOS ENVIRONMENT VARIABLES
  1437. ══════════════════════════════════════════════════════════════════════════════
  1438.  
  1439. DOSmenu uses DOS variables to make the system work without _any_ overhead;
  1440. user ID, server name, workstation node address, command for a selected menu
  1441. item, last time the DOSMENU.NTE file was changed (for noticing), software
  1442. metering application, and name of the last 'main menu' used.
  1443.  
  1444. The node address variable needed if you intend to restrict any menu items by
  1445. comparing a work station's node address.  In a Novell network, you could
  1446. define this variable like:
  1447.  
  1448.      DOS SET _NODE="%P_STATION"<<4
  1449.  
  1450. where the <<4 takes the first 4 numbers away from the actual twelve digit
  1451. address.
  1452.  
  1453. The user ID and server name variables are _only_ needed if you are not running
  1454. on NetWare and are not on a stand-alone environment.  In this case, you define
  1455. and load two DOS variables once during the user login script with the correct
  1456. information.
  1457.  
  1458.      DOS SET _USER="%LOGIN_NAME"
  1459.      DOS SET _SERVER="%FILE_SERVER"
  1460.  
  1461. where _user and _server and be called anything you wish.  You would then add
  1462. these two names two the INI file so DOSmenu will know what they are called.
  1463. It takes care of the rest.
  1464.  
  1465. The variable for the menu item command is called _dmcmd and is always used.
  1466.  
  1467. The variable _dmnte is used when you wish to leave dynamic notices to
  1468. any and all users.
  1469.  
  1470. The menu name variable, _dmmnu, keeps track of the last permanent main menu
  1471. used in DOSmenu before quitting to the batch file as well as the last
  1472. sub-menu and item selected.
  1473.  
  1474. The _dmmtr variable holds the meter rights issued with the current DOS
  1475. command, if any.
  1476.  
  1477. DMquery also uses environment variables.  It will use up to 9 variables named
  1478. _dmq1, _dmq2, .., _dmq9.
  1479.                                    NOTICING
  1480. ══════════════════════════════════════════════════════════════════════════════
  1481.  
  1482. DOSMENU.NTE is used to leave notices to any and all users -dynamically.  Here
  1483. you may place notices based on the rights defined for each notice.  Each
  1484. notice consists of at least two lines; line 1 contains the rights and the
  1485. following lines (up to 10) contain the actual notice, like:
  1486.  
  1487. ;─────
  1488. {g=paradox} {s=server1}
  1489. Paradox will be down on SERVER1 all day today.
  1490. Hopefully it will be up tomorrow...
  1491. ;─────
  1492. Here, only users in group PARADOX on server SERVER1 will get this notice when
  1493. they next start up the menu system.
  1494.  
  1495. Each user may have up to 15 active notices.  Each notice may have up to 10
  1496. lines of up to 70 characters long.
  1497.  
  1498. You can add and subtract from this section anytime throughout the day.  When
  1499. a user starts the menu system, and after returning to the menu system (from
  1500. commands, etc), the notices are checked and shown, if needed.  This gives the
  1501. noticing system a dynamic quality that can be quite useful to you as an
  1502. administrator!
  1503.  
  1504. The time stamp of the file when the user reads notices is kept in a DOS
  1505. variable called _dmnte.  This variable is checked each time a user reloads the
  1506. menu system after running a command.  If you have made a change to the
  1507. DOSMENU.NTE file during that time, then the user will see the notices again,
  1508. and the variable will be updated.
  1509.                                 PERSONAL MENUS
  1510. ══════════════════════════════════════════════════════════════════════════════
  1511.  
  1512. On a network, each user may use and maintain one personal menu, named
  1513. DOSMENU.PER.  This menu file is kept and read from the user's defined private
  1514. directory.  
  1515.  
  1516. The F5 key will load (like /LOAD) the menu for the user so he/she can use it.
  1517. After running a command from it, DOSmenu will return to the last shared main
  1518. menu.  If the personal menu does not yet exist, a shell will be created for
  1519. the user first.
  1520.  
  1521. The F6 key allows the user to edit the personal menu with DMutil.  All
  1522. commands that would grant access to other parts of your network are disabled
  1523. while the user is editing the menu.  Only the SAVE and QUIT commands are
  1524. enabled.
  1525.  
  1526. To disallow the personal menu option, set the "Allow Personal Menus" line to
  1527. NO in DOSMENU.INI.
  1528.  
  1529. If allowed, we recommend setting the "Force Personal NoBreaks" line to YES.
  1530. Otherwise, a user may inadvertently set up a DOS command like "dir /p" or
  1531. setup a DOS batch file (by entering two or more commands for a menu item) that
  1532. they may later be able to break out of with ^C or ^Break.  Setting nobreaks to
  1533. yes prevents this from ever happening.  One disadvantage to using this
  1534. approach is that any NetWare search mappings contained within a batch file
  1535. will not work.  An alternative approach would be to set nobreaks to false and
  1536. instead use the included NOBRK TSR utility, which ensures complete nobreak
  1537. protection without affecting network batch file-based search mappings.
  1538.                           SOFTWARE METERING SERVICE
  1539. ══════════════════════════════════════════════════════════════════════════════
  1540.  
  1541. DOSmenu now includes a powerful capability called software metering which
  1542. enables you to control the number of simultaneous run instances of an
  1543. application.  For instance, if you have bought 25 licenses for WordPerfect,
  1544. you now have the means to insure that only 25 copies are run at one time from
  1545. with the menu system on your network.
  1546.  
  1547. There are more expensive and perhaps more foolproof offerings on the market
  1548. for this service, but DOSmenu does the job simply and easily.  We believe that
  1549. an administrator's effort level in attempting to control software licensing is
  1550. at least 95 percent of any large distributor's concerns.
  1551.  
  1552. To set up metering:
  1553.  
  1554. 1.  Place these commands in the DOSMENU.INI file:
  1555.  
  1556. Use Metering=yes
  1557. Metering File=f:\share\dosmenu.mtr (or something like that)
  1558.  
  1559. Users must have WRITE and ERASE rights to the above area.
  1560.  
  1561. 2.  Place the meter right on those commands you want metered, for example:
  1562.  
  1563. ;─────
  1564. W WordPerfect
  1565.         {m=wp51:25}
  1566.         f:\apps\wp\wp
  1567. ;─────
  1568.  
  1569. will meter the use of F:\APPS\WP\WP.EXE for all accesses from DOSmenu.  If
  1570. 25 instances are already in use (in this example), then DOSmenu will instruct
  1571. the user that the maximum licenses are in use and to try again later.
  1572.  
  1573. The syntax is important.  The application keyword, in this case WP51, may be
  1574. 10 or less characters with no spaces, followed by an immediate colon ':',
  1575. followed by an immediate number from 1 to 999 (with no spaces) -or- if no
  1576. :number is entered, then 999 is assumed (good for counting accesses only).
  1577.  
  1578. Of course anyone accessing WP.EXE from outside of the menu system will not be
  1579. metered in this way.  See the DMMETER UTILITY section to find out how to
  1580. meter software run from outside the menu system.
  1581.  
  1582. Note: RECOMMEND DELETING THIS FILE PERIODICALLY/NIGHTLY...
  1583. If any user locks up while in a metered application, or gets rebooted at that
  1584. point, then the meter count for that app will remain off by one (it will show
  1585. one greater than actual).  For this reason, we recommend deleting the defined
  1586. meter file periodically, perhaps at night before or after your backup.  See
  1587. WOMETER WINDOWS METERING UTILITY section below for an automatic way to perform
  1588. this function.
  1589.                           DMUTIL MAINTENANCE UTILITY
  1590. ══════════════════════════════════════════════════════════════════════════════
  1591.  
  1592. COMMAND PARAMETERS
  1593. ══════════════════
  1594.  
  1595. The DMutil program keeps all of your menu maintenance requirements in one
  1596. utility.  Anything you need to do to your menu system can be done with DMutil.
  1597.  
  1598. Here is the command syntax:
  1599.  
  1600.      DMUTIL ?
  1601.      DMUTIL /M|T|C|D [PATH]FILENAME
  1602.      DMUTIL
  1603.      DMUTIL [PATH]FILE|[PATH]SPEC [[[PATH]FILE|[PATH]SPEC] ..]
  1604.      DMUTIL /L [USER_ID]
  1605.  
  1606. where:
  1607.  
  1608.       ? = DMutil and system installation quick help
  1609.  
  1610.      /M = Makes default DOSmenu BAT, MNU, INI, and NTE files
  1611.  
  1612.      /T = Translates NetWare menu files
  1613.  
  1614.    /C|D = Compiles|Decompiles DOSmenu INI, MNU, or NTE files
  1615.  
  1616.         = Edits all menu system files at once
  1617.  
  1618.  FILE.. = Edits any number of text file(s) up to 64K in length each
  1619.  
  1620.      /L = parses specific user ID entries from the central log file, if used.
  1621.  
  1622.  
  1623. THE MENU FILE EDITOR
  1624. ════════════════════
  1625.  
  1626. The editor is a simple ascii text editor that has specific help screens to
  1627. give you some on-line help on all menu file types.  Any ascii editor can be
  1628. used to edit the startup BAT, INI, MNU and NTE files (if they have not been
  1629. compiled).
  1630.  
  1631. It's operation is self-explanatory, but a few items are worth mentioning:
  1632.  
  1633. o    Edits files with any DOS attribute set and then resets those attributes
  1634.      afterwards.
  1635.  
  1636. o    Automatically decompiles - edits - recompiles your menu files for you.
  1637.  
  1638. o    Can edit many text files at once with commands like \WINDOWS\*.INI, etc.
  1639.  
  1640. o    Can show tabs and spaces in a file on screen.
  1641.                          DMQUERY BATCH INPUT UTILITY
  1642. ══════════════════════════════════════════════════════════════════════════════
  1643.  
  1644. DMquery is a utility that can be used to provide input for batch files made
  1645. with DOSmenu.
  1646.  
  1647. Here are the command line parameters:
  1648.  
  1649.      DMQUERY n [/R|U|E|Danswer]
  1650.  
  1651. where
  1652.  
  1653.       n = A number from 1..9
  1654.  
  1655.      /R = Input required (an answer must be given)
  1656.  
  1657.      /U = Input forced to upper case
  1658.  
  1659.      /E = Input echoed to screen afterwards
  1660.  
  1661. /Danswer = Input default answer is 'answer' (must be one word only)
  1662.  
  1663.  
  1664. The DOS variable '_DMQn' is used.  DMquery may be run from DOS or a DOS shell;
  1665. however, it must be queried for and acted upon within the _same_ batch file,
  1666. like:
  1667.  
  1668.      @echo off
  1669.      echo What is your name?  {your question}
  1670.      dmquery 1 /r/dJoe        {answer required, put in var _DMQ1, def=Joe}
  1671.      if errorlevel 255 goto.. {not enough env space? -optional}
  1672.      echo %_dmq1%             {use answer variable _DMQ1 as you wish!}
  1673.  
  1674. Here is an example DOSmenu menu item:
  1675.  
  1676. ;─────
  1677. D Directory
  1678.         echo Directory of what?
  1679.         dmquery 1
  1680.         echo Switches (/w, /p, etc)?
  1681.         dmquery 2
  1682.         dir %_DMQ1% %_DMQ2%
  1683.         pause
  1684. ;─────
  1685.                            DMMETER METERING UTILITY
  1686. ══════════════════════════════════════════════════════════════════════════════
  1687.  
  1688. This utility can optionally monitor your software usage from outside of the
  1689. menu system.  It does the same thing DOSmenu does when you activate the meter
  1690. right for a menu item, except it does it from within DOS batch files.
  1691.  
  1692. Here are the command line parameters:
  1693.  
  1694.      DMMETER APP[:LICENSE_COUNT] {before batch command} 
  1695.  
  1696. and
  1697.  
  1698.      DMMETER {after batch command}
  1699.  
  1700. Here is an example batch file:
  1701.  
  1702. @echo off
  1703. [path]dmmeter wp51:25    ;add instance of wp51 app to meter file
  1704. if errorlevel 1 goto END ;if too many instances already, don't do it
  1705. f:\apps\wp\wp            ;run the app
  1706. [path]dmmeter            ;subtract instance of wp51 from meter file
  1707. :END
  1708.  
  1709. DMMETER.EXE must reside in DOSMENU.EXE's home directory, and DOSMENU.INI must
  1710. also be present in DOSMENU.EXE's home directory.
  1711.  
  1712. If an errorlevel 1 is returned, an error window pops up to tell the user
  1713. of the problem and asks them to try again later.
  1714.  
  1715. To reset a problem app (one that locks machines now and then?) to 0 in the
  1716. meter file (instead of deleting the entire file) run DMmeter with the reset
  1717. switch, like:
  1718.  
  1719.      DMMETER /RESET APP
  1720.  
  1721. Example:
  1722.  
  1723.      dmmeter /reset wp51
  1724.  
  1725. To view concurrent usage of metered software applications from the DOS prompt,
  1726. use:
  1727.  
  1728.      DMMETER /VIEW
  1729.                            WOMETER METERING UTILITY
  1730. ══════════════════════════════════════════════════════════════════════════════
  1731.  
  1732. This utility can optionally monitor your software usage from within Windows.
  1733.  
  1734. WOMETER.EXE will attempt to find the meter file's name in its WOMETER.INI
  1735. file.  If it does not, it will make this file in its home directory and then
  1736. you can fill in the name of the meter file, like:
  1737.  
  1738. [Setup]
  1739. MeterFile=f:\login\logs\dosmenu.mtr (or something like that)
  1740.  
  1741. WOmeter allows real-time reseting of specific metered applications, in case
  1742. the count has gone astray (perhaps from user lockups, etc.).
  1743.  
  1744. You may also set up WOmeter to automatically erase your meter file on a daily
  1745. basis at a specified time.  The default is 00:01 (one minute after midnight).
  1746.  
  1747. You may also define the length of time WOmeter waits between re-reads of the
  1748. meter file (between 10 and 60 seconds).
  1749.                             WINDOWS OFFICE SYSTEM
  1750. ══════════════════════════════════════════════════════════════════════════════
  1751.  
  1752. We now have another product, WOmenu, that is a network menuing system as
  1753. well.  However, WOmenu is Windows-based.  It's functionality is a
  1754. similar to DOSmenu (rights, etc.) and it works nicely in conjunction with
  1755. DOSmenu (shared log and meter files, etc.).  If you are interested in this
  1756. product, please contact us.  To try it first, look on Compuserve in the
  1757. NOVUSER/New Uploads [1] forum for the file WOMNU.EXE.
  1758.                     ADDITIONAL DOSMENU DOCUMENTATION FILES
  1759. ══════════════════════════════════════════════════════════════════════════════
  1760.  
  1761. The following files are located on disk:
  1762.  
  1763. README.TXT     - Quick start.
  1764. DMSAMPLE.DOC   - Sample menu.
  1765. DMUSERS.DOC    - Useful hints from users.
  1766. DMLOGIN.DOC    - DMlogin documentation.
  1767. NOBRK.DOC      - NoBrk documentation.
  1768. DMBONUS.DOC    - Notes on bonus programs.
  1769. DMORDER.DOC    - Order form.
  1770. DMREV.DOC      - Revision history.
  1771. DMLEGAL.DOC    - Shareware and legalities.
  1772.